package com.example.demo.order.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 订单表-m-
 * </p>
 *
 * @author huamq
 * @since 2021-02-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="OrdersNew对象", description="订单表-m-")
public class OrdersNew implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "订单号")
    private String orderId;

    @ApiModelProperty(value = "芝麻订单号")
    private String zmOrderNo;

    @ApiModelProperty(value = "资金操作请求流水号")
    private String outRequestNo;

    @ApiModelProperty(value = "支付宝用户的userId")
    private String zmUserId;

    @ApiModelProperty(value = "用户姓名")
    private String userName;

    @ApiModelProperty(value = "用户手机号")
    private String userPhone;

    @ApiModelProperty(value = "身份证号")
    private String userIdNumber;

    @ApiModelProperty(value = "收件人姓名")
    private String receiverName;

    @ApiModelProperty(value = "收件人电话")
    private String receiverPhone;

    @ApiModelProperty(value = "用户邮箱")
    private String userEmail;

    @ApiModelProperty(value = "收货地址")
    private String userAddress;

    @ApiModelProperty(value = "订单状态 0未完成1待审核2待支付3待发货4租用中（续租中）5待归还6已完成7逾期中8订单取消9审核拒绝12已买断901风控拒绝")
    private Integer orderStatus;

    @ApiModelProperty(value = "商户id")
    private Integer merId;

    @ApiModelProperty(value = "商品ID")
    private Integer goodsId;

    @ApiModelProperty(value = "属性ID")
    private String attrId;

    @ApiModelProperty(value = "商品分类id")
    private Integer cateId;

    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    @ApiModelProperty(value = "商品属性：颜色+规格")
    private String goodsOrderAttr;

    @ApiModelProperty(value = "商品图片")
    private String goodsOrderThumbnail;

    @ApiModelProperty(value = "官方价格")
    private BigDecimal goodsOfficialPrice;

    @ApiModelProperty(value = "月租金")
    private BigDecimal orderMonthlyRent;

    @ApiModelProperty(value = "总租金")
    private BigDecimal orderGrossRent;

    @ApiModelProperty(value = "租用天数")
    private String orderDayRent;

    @ApiModelProperty(value = "租期(月)")
    private Integer orderTenancyTerm;

    @ApiModelProperty(value = "剩余还款期数")
    private Integer orderRepayPeriod;

    @ApiModelProperty(value = "剩余应还款金额")
    private BigDecimal orderRemaAmountPay;

    @ApiModelProperty(value = "已付金额")
    private BigDecimal orderAmountActuallyPaid;

    @ApiModelProperty(value = "买断金")
    private BigDecimal buyMoney;

    @ApiModelProperty(value = "逾期金额")
    private BigDecimal orderAmountOverride;

    @ApiModelProperty(value = "押金")
    private BigDecimal orderGrossCreditRent;

    @ApiModelProperty(value = "免押额度")
    private BigDecimal zmCreditAmount;

    @ApiModelProperty(value = "保险ID")
    private String safeId;

    @ApiModelProperty(value = "意外保障费")
    private BigDecimal orderGoodsInsurance;

    @ApiModelProperty(value = "电子合同号")
    private String electronicContractNumber;

    @ApiModelProperty(value = "区块链存证事务ID")
    private String notaryId;

    @ApiModelProperty(value = "快递公司")
    private String express;

    @ApiModelProperty(value = "快递单号")
    private String expNumber;

    @ApiModelProperty(value = "快递详情")
    private String expressData;

    @ApiModelProperty(value = "快递照片")
    private String expressImg;

    @ApiModelProperty(value = "优惠券id")
    private Integer myCouId;

    @ApiModelProperty(value = "模板消息formid")
    private String userFormId;

    @ApiModelProperty(value = "1是已删除")
    private Boolean isDelete;

    @ApiModelProperty(value = "0待归还，1归还中，2检测中，3待赔偿，4已逾期，5已完成")
    private Boolean returnStatus;

    @ApiModelProperty(value = "存证收费金额（自己计算，仅参考）")
    private BigDecimal notaryMoney;

    @ApiModelProperty(value = "存证图片")
    private String notaryImg;

    @ApiModelProperty(value = "1 用户取消  2 商户或平台取消 3 自动审核拒绝 4 商户或平台拒绝")
    private Boolean cancelStatus;

    @ApiModelProperty(value = "是否可续租")
    private Integer isKeepRent;

    private String transactionId;

    @ApiModelProperty(value = "续租关联的订单号")
    @TableField("relationOrder")
    private String relationorder;

    @ApiModelProperty(value = "保额")
    @TableField("insuranceCoverage")
    private BigDecimal insurancecoverage;

    @ApiModelProperty(value = "保单号")
    @TableField("PolicyNo")
    private String policyno;

    @ApiModelProperty(value = "保单链接")
    @TableField("PolicyUrl")
    private String policyurl;

    @ApiModelProperty(value = "投保金额")
    private BigDecimal insuranceAmount;

    @ApiModelProperty(value = "逾期天数")
    private Integer overdueDay;

    @ApiModelProperty(value = "备注")
    private String orderRemarks;

    @ApiModelProperty(value = "下单备注")
    private String note;

    @ApiModelProperty(value = "是否上传承诺信息")
    private Boolean isPromise;

    @ApiModelProperty(value = "signForContract生成的文件")
    private String signfor;

    @ApiModelProperty(value = "warrantContract生成的文件")
    private String warrant;

    @ApiModelProperty(value = "incomeContract生成的文件")
    private String income;

    private String receipt;

    @ApiModelProperty(value = "征信返回的contractId")
    @TableField("contractId")
    private String contractid;

    @ApiModelProperty(value = "附件id")
    @TableField("attachmentId")
    private String attachmentid;

    @ApiModelProperty(value = "代偿id")
    @TableField("compensationId")
    private String compensationid;

    @ApiModelProperty(value = "追偿id")
    @TableField("recoveryId")
    private String recoveryid;

    @ApiModelProperty(value = "订单中心商品id")
    private String materialId;

    @ApiModelProperty(value = "订单标签")
    private Boolean orderTab;

    @ApiModelProperty(value = "设备序列号")
    private String serialNumber;

    @ApiModelProperty(value = "下单时间")
    private LocalDateTime orderCreateTime;

    @ApiModelProperty(value = "发货时间")
    private LocalDateTime orderDeliveryTime;

    @ApiModelProperty(value = "订单生效时间")
    private LocalDateTime orderEntryTime;

    @ApiModelProperty(value = "收货时间")
    private LocalDateTime orderReceivTime;

    @ApiModelProperty(value = "最后逾期时间")
    private LocalDateTime orderLastOverdue;

    @ApiModelProperty(value = "是否上保险0不上1上2已退保")
    private Integer isPolicy;

    private String ip;


}
